﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using indicadores.Models;

namespace indicadores.Controllers
{
    public class DepartamentoController : Controller
    {
        DepartamentoRepositorio dp = new DepartamentoRepositorio();

        public ActionResult Index()
        {
            return View(dp.BuscaTodas());
        }
        
        public ActionResult Novo()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Novo(Departamento d)
        {
            if (ModelState.IsValid)
            {
                dp.Adiciona(d);
                return RedirectToAction("Index");
            }
            else
            {
                return RedirectToAction("Novo");
            }
        }

        public string Apagar(int id)
        {
            try
            {
                dp.Apagar(id);
                return "Departamento excluído com sucesso.";
            }
            catch
            {
                return "Ocorreu algum erro com o banco de dados!";
            }
        }

        public ActionResult Detalhes(int id)
        {
            return View(dp.Busca(id));
        }

        public ActionResult Acesso(int id)
        {
            return View();
        }

        [HttpPost]
        public ActionResult Acesso(Login l, int id)
        {
            Departamento d = new Departamento();
            d = dp.Busca(id);
            d.Usuarios.Add(l);

            dp.Alterar(d);

            return RedirectToAction("Detalhes", new { id = id });
        }

        public ActionResult Indicadores(int id)
        {
            return View();
        }

        [HttpPost]
        public ActionResult Indicadores(Indicador i, Variavel[] v, int id)
        {
            VariavelRepositorio vv = new VariavelRepositorio();
            i.Departamento = vv.context.Departamentos.Find(id);

            for (int s = 0; s < v.Length; s++)
            {
                v[s].Indicador = i;
                vv.Adiciona(v[s]);
            }

            return RedirectToAction("Detalhes", new { id = id });
        }
    }
}
